package websocket

import (
	"net/http"

	"baseService/internal/pkg/websocket"

	"github.com/gin-gonic/gin"
)

// Handler WebSocket处理器（极简版 - 使用Melody）
type Handler struct{}

// NewHandler 创建WebSocket处理器
func NewHandler() *Handler {
	return &Handler{}
}

// HandleConnection 处理WebSocket连接
func (h *Handler) HandleConnection(c *gin.Context) {
	// 直接使用Melody处理升级
	websocket.HandleUpgrade(c)
}

// RegisterRoutes 注册WebSocket路由
func (h *Handler) RegisterRoutes(router *gin.Engine) {
	// WebSocket路由组
	wsGroup := router.Group("/ws")

	// 主要的WebSocket连接端点
	wsGroup.GET("/connect", h.HandleConnection)

	// WebSocket状态信息端点
	wsGroup.GET("/status", h.GetStatus)
}

// GetStatus 获取WebSocket状态
func (h *Handler) GetStatus(c *gin.Context) {
	stats := websocket.GetStats()
	c.JSON(http.StatusOK, gin.H{
		"status": "ok",
		"stats":  stats,
	})
}
